package com.siteseat.crudeq.kernel;

import com.siteseat.common.foundation.Component;
import com.siteseat.common.foundation.PropertyHelper;

/**
 *
 */
public abstract class KernelComponent extends Component implements KernelObject {

  private KernelFactory factory;
  
  /**
   * {@inheritDoc}
   */
  @Override
  public KernelFactory getFactory() {
    return factory;
  }

  /**
   * Sets the factory
   *
   * @param factory the factory to set
   */
  public void setFactory( KernelFactory factory ) {
    this.factory = factory;
  }
  

  /**
   * {@inheritDoc}
   */
  @Override
  protected void doInit() throws Exception {
    PropertyHelper.ensureInitialized( log, getFactory(), "factory" );
  }


}
